/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.going.logica;

import co.com.going.modelo.Cliente;
import co.com.going.persistencia.IDAOcliente;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Olguita
 */
@Stateless
public class ClienteLogica implements IClienteLogica {

    @EJB
    private IDAOcliente iDAOcliente;
    
    @Override
    public void crearCliente(Cliente cliente) throws Exception {
         
        if(cliente==null){
        
            throw new Exception("El Cliente no tiene Informacion");
        
        }
        
        Cliente objCliente= iDAOcliente.buscarCliente(cliente.getCedula());
        
        if(objCliente!=null){
        
        
            throw new Exception("El Cliente ya Existe");
        
        }
        
         
        
        if(cliente.getNombreCliente()==null||cliente.getNombreCliente().equals("")){
            
            throw new Exception("El Nombre no puede ser Vacio");
            
        }
        
         if(cliente.getApellidoCliente()==null||cliente.getApellidoCliente().equals("")){
            
            throw new Exception("El Apellido no puede ser Vacio");
            
        }
         
         if(cliente.getEmail()==null||cliente.getEmail().equals("")){
            
            throw new Exception("El Email No Puede Ser Vacio");
            
        }
         
         if(cliente.getCelular()==null||cliente.getCelular().equals("")){
            
            throw new Exception("El Numero de Celular no puede ser vacio");
            
        }
         
           
        iDAOcliente.crearCliente(cliente);
        
    }
    

    @Override
    public void eliminarCliente(Cliente cliente) throws Exception {
        
        if(cliente==null){
        
            throw new Exception("El Cliente no tiene Informacion");
        
        }
        
        Cliente objCliente= iDAOcliente.buscarCliente(cliente.getCedula());
        
        if(objCliente==null){
        
        
            throw new Exception("El Cliente No Existe");
        
        }
        
        iDAOcliente.eliminarCliente(cliente);
        
    }

    @Override
    public void modificarCliente(Cliente cliente) throws Exception {
        
        if(cliente==null){
        
            throw new Exception("El Cliente no tiene Informacion");
        
        }
        
        Cliente objCliente= iDAOcliente.buscarCliente(cliente.getCedula());
        
        if(objCliente==null){
        
        
            throw new Exception("El Cliente No Existe");
        
        }
        
        if(cliente.getNombreCliente()==null||cliente.getNombreCliente().equals("")){
            
            throw new Exception("El Nombre no puede ser Vacio");
            
        }
        
         if(cliente.getApellidoCliente()==null||cliente.getApellidoCliente().equals("")){
            
            throw new Exception("El Apellido no puede ser Vacio");
            
        }
         
         if(cliente.getEmail()==null||cliente.getEmail().equals("")){
            
            throw new Exception("El Email No Puede Ser Vacio");
            
        }
         
         if(cliente.getCelular()==null||cliente.getCelular().equals("")){
            
            throw new Exception("El Numero de Celular no puede ser vacio");
            
        }
        
            
        
        
       iDAOcliente.modificarCliente(cliente);
        
    }

    @Override
    public List<Cliente> clientes() throws Exception {
        
        return iDAOcliente.clientes();
        
    }

    @Override
    public Cliente cliente(Long cedula) throws Exception {
        
        if(cedula==null||cedula==0){
            
            throw new Exception("Ingrese la cedula de el cliente  que desee buscar");
        }
        
        return iDAOcliente.buscarCliente(cedula);
    }

    @Override
    public List<Cliente> CientesNivelInteres(String nivel) throws Exception {
        
        if(nivel==null||nivel.equals("")){
            
            throw new Exception("Ingrese la cedula de el cliente desee buscar");
        }
        
        return iDAOcliente.CientesNivelInteres(nivel);
        
    }

    
    
}
